import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { PageHeaderModule } from '@delon/abc/page-header';
import { AlainThemeModule } from '@delon/theme';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
import { SystemDictListEditComponent } from './dict/list-edit/list-edit.component';
import { SystemDictListComponent } from './dict/list/list.component';
import { SystemRoutingModule } from './system-routing.module';
import { NzCardModule } from 'ng-zorro-antd/card';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzTableModule } from 'ng-zorro-antd/table';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
import { NzDividerModule } from 'ng-zorro-antd/divider';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzDrawerModule } from 'ng-zorro-antd/drawer';
import { SystemDictChildrenComponent } from './dict/list-children/list-children.component';
import { SystemChildrenDictEditComponent } from './dict/children-edit/children-edit.component';
import { WebInfoViewComponent } from './web-info/view/view.component';
import { WebInfoEditComponent } from './web-info/edit/edit.component';

const COMPONENTS = [SystemDictListComponent, WebInfoViewComponent];
const COMPONENTS_NOROUNT = [
  SystemDictListEditComponent,
  SystemDictChildrenComponent,
  SystemChildrenDictEditComponent,
  WebInfoEditComponent,
];

@NgModule({
  declarations: [...COMPONENTS, ...COMPONENTS_NOROUNT],
  imports: [
    CommonModule,
    SystemRoutingModule,
    NzCardModule,
    ReactiveFormsModule,
    NzDrawerModule,
    NzFormModule,
    NzTableModule,
    NzPopconfirmModule,
    NzDividerModule,
    NzButtonModule,
    NzInputModule,
    PageHeaderModule,
    NzSwitchModule,
    FormsModule,
    NzSelectModule,
    AlainThemeModule,
    NzInputNumberModule,
    NzIconModule,
  ],
  entryComponents: COMPONENTS_NOROUNT,
})
export class SystemModule {}
